/**
 * FileGets.java
 *
 * @author Lobsang A. Szaler <l.alvites@lpcsite.com>
 * @date   Aug 7 2007
 *
 * Copyright (c) Soluciones Info Móviles SAC
 */

package sim.framework.io;

/**
 * Interface FileGets.
 *
 * Todas las clases que requieren leer lineas de un archivo en forma
 * eficiente deben implementar la interface FileGets.
 *
 * @author Enrique J. Madrid M.
 * @version %I%, %I%
 * @since 1.0
 * @see FileStream
 */
public interface FileGets {

    /** 
     * Método llamado cuando se lee una linea del archivo.
     * 
     * @param line Arreglo de bytes que contiene la linea.
     * @param size Longitud de la linea leída. Puede ser cero; por ejemplo,
     *             si delimitadores de fin de línea se encuentran juntos.
     * @param crlf la longitud en bytes correspondientes al fin de linea.
     *             Este puede variar si el archivo es de tipo MacOS, Unix o
     *             Windows.
     *
     * @return Debe devolver true para continuar y false para detener la
     *         lectura de lineas.
     *
     * @see FileStream.gets()
     */    
    public boolean fileGetsLine(final byte[] line, int size, int crlf);
}
